1. Field of the Invention
The present invention relates generally to data processing systems, and more particularly to such systems that provide communication between heterogeneous computer platforms.
2. Description of the Prior Art
It is known in the prior art to interconnect various computer platforms to form:larger distributed data processing systems. For example, personal computers may be coupled together via a Local Area Network (LAN) or some other form of connection. In another example, a number of personal computers may be coupled to a mainframe type computer system. In this latter example, the personal computers may exercise control over and submit execution runs to the mainframe computer. This approach may allow a user of a personal computer to execute smaller tasks directly on the personal computer, and submitted larger tasks to the mainframe computer.
To take full advantage of the capabilities of interconnected computer platforms, it would be desirable to have computer programs that can execute across multiple computer platforms. For example, it would be desirable if a computer program operating on a personal computer could directly access data from, or submit runs to, another computer platform.
It has been recognized that to write such computer programs, a user must typically have detailed knowledge in the communications protocols for each of the involved computer platforms. This may include a detailed knowledge of the network connection of each computer platform, as well as the communication protocols used therebetween.
A further difficulty is that each time a new platform is interconnected to the existing platforms, any such computer program may have to be updated with new communication protocols. This is made even more difficult when heterogenous computer platforms having different hardware and software architectures are used.
The present invention overcomes many of the disadvantages associated with the prior art by providing a method and apparatus for directly accessing data from, or submit runs to, another computer platform. Preferably, this is accomplished by providing a special program statement within the software code of a computer program that is executed on a local computer platform. The special program statement may include a remote request, and may call a utility that formats and sends the remote request to the desired remote computer platform. The utility may support requests to one or more computer platforms, and may support one or more communication protocols. After the remote request has been processed by the desired remote computer platform, resulting data may be returned to the computer program on the local computer platform.
As can readily be seen, the present invention may allow a computer program executing on a local computer platform to execute runs or perform other tasks on a remote computer platform. This may be particularly useful when, for example, the computer program is being executed on a personal computer, and the personal computer is interconnected to a remote mainframe type computer system. The personal computer may perform many of the tasks specified by the computer program, without using any of the resources of the remote mainframe computer. However, when large and/or complex tasks are required, the computer program may be coded to submit those tasks to the remote mainframe computer system. This may save a significant amount of processing time, and may optimize the use of available resources.
In a first embodiment, the request is provided by an application program resident on a first computer platform. The request is formatted into a format that is compatible with a second computer platform. Once formatted, the request is provided to the second computer platform, which then process the request. A result is then provided to the first computer platform, if appropriate, wherein the application program may have access to the results.
As indicated above, the user typically initiates a remote request by embedding a program statement in the application program. The program statement may invoke a utility, and may pass selected parameters to the utility. The selected parameters preferably indicate the desired action to be performed on the second computer platform. The desired action preferably starts or controls an application program resident on the second computer platform and/or accesses and receives data from a memory storage device resident on the second computer platform.
Preferably, the utility transforms the request into a format that is expected by the second computer platform. The expected format may be the format provided by a local terminal that may be connected to the second computer platform.
The utility then may provide the request to the interface that interconnects the first and second computer platforms, where it is transferred across the interface to the second computer platform. The second computer platform then responds to the request just as if the request originated from a local terminal.
If the request initiates execution of an application program, any resulting data may be transferred back across platform interconnection to the first computer platforms. The utility may receive the resulting data and write the data into a buffer. Thereafter, the buffer is preferably accessible by the application program running on the first computer platform. The buffer may be specified by the user in the original program statement which invokes the utility. The application program may then perform any additional analysis or formatting of the data stored in the buffer.
It is contemplated that the present invention may provide communication between autonomous application programs, each resident on a heterogeneous computer platform, as well as distributed application programs, wherein each portion of the distributed application program is resident on a heterogeneous computer platform.